#Welcome to c

بازگشت




زبان#C همانند بيشتر زبانهاي برنامه نويسي دارای IDE ها و محیط های برنامه نویسی با قابلیت های متفاوت می باشد. يكی از این محیط ها Microsoft Visual Studio می باشد که قدرتمند ترین آنها نیز می باشد.ه ما در اينجا از نسخه 2010  Microsoft Visual Studio استفاده نموده ايم .
براي شروع برنامه نويسي به اين زبان كافي است كه ويژوال استاديو را باز كرده و از منوي File گزينه New سپس project را انتخاب نماييد در اين مرحله شما قادر خواهيد بود كه نوع برنامه اي را كه مي خواهيد بنويسيد انتخاب كنيد و ما براي يادگيري مفاهيم از Console Application استفاده مي كنيم ، حال اگر نام پرژه خود را انتخاب كنيد ، يك پروژه ايجاد مي شود كه مي توانيد كد مورد نظر خود را در آن وارد نموده و خروجي را با اجراي برنامه مشاهده كنيد. براي اجراي برنامه نيز كافي است كه كليد F5 را فشار داده يا از منوي Debug گزينه Start Debugging را انتخاب نماييد.
توجه داشته باشيد كه هر برنامه #C الزاما داراي يك كلاس با يك متد است كه متد ()Main ناميده مي شود. فرم كلي متد ()Main بدين شكل مي باشد:

static void Main( )
{
Statmants
}


using System;

class Welcome
{
static void Main(string[] args)
{
Console.WriteLine( "welcome to the c# proggraming!" ); } }
خروجي برنامه بالا را در زير مشاهده مي كنيد:

همانطور كه ملاحظه مي كنيد پس از اجراي برنامه، يك صفحه براي نمايش خروجي به سرعت باز شده و بسته ميشود و شما قادر به ديدن خروجي نخواهيد بود. براي اينكه بتوانيد خروجي برنامه را ببينيد، در انتهاي برنامه دستور زير را وارد نماييد :
Console.ReadLine();
استفاده از اين دستور باعث ميشود تا برنامه منتظر دريافت يك ورودي از كاربر بماند، كه در اين حالت شما ميتوانيد خروجي برنامه خود را ديده و سپس با زدن كليد Enter برنامه را خاتمه دهيد.
اولين نكته كه بايد بدان توجه داشته باشيد اين است كه زبان C# ، Case Sensitive است و اين بدين معنا كه به حروف كوچك و بزرگ حساس است يعني براي مثال ReadLine با readLine متفاوت است به طوريكه اولي جزو دستورات زبان# C و دومي به عنوان يك نام براي متغير يا يك تابع كه از طرف كاربر تعريف شده است در نظر گرفته ميشود.
نكته ديگر اين كه تمامي دستورات (Statements) با ";"، سمي كولن، پايان مييابند. كلاسها و متدها با } آغاز شده و با { خاتمه مييابند. تمامي دستورات بين { } يك بلوك را ميسازند.
در زبان #C، براي قرار دادن توضيحات در كد برنامه از Comment استفاده مي كنيم. بدين معنا كه كامپايلر در هنگام اجراي برنامه توجهي به اين توضيحات نمي كند و اين توضيحات تنها به منظور بالا بردن خوانايي متن و جهت و كمك به فهم بهتر برنامه قرار ميگيرند. انواع مختلف Commet كه با توجه كاربرد آن ها دسته بندي مي شوند را در جدول زير ملاحظه مي كنيد.

توضيحاتپایانشروعنوع
از مكان علامت شروع گذاشته شده تا انتهاي خط توسط كامپايلر ناديده گرفته مي شود
//تك خطي
از مكان شروع تا مكان علامت پايان توسط كامپايلر ناديده گرفته مي شود/**/نا محدود
اين نوع شامل متن هاي XML شده و براي مستند سازي برنامه ها به كار مي رود///مستند 


اعلان NameSpace به سيستم اعلان مي نمايد كه شما از توابع كتابخانه اي System جهت اجراي برنامه ها خود استفاده مين ماييد. دستوراتي مانند ()WriteLine و ()ReadLine جزو توابع كتابخانه اي System مي باشند. اغلب دستورات و توابع مهم و كليدي استفاده از كنسول ورودي/خروجي در اين كتابخانه مي باشد. در صورتي كه در ابتداي برنامه از using System استفاده نكنيد، بايد در ابتداي هر يك از دستورات برنامه كه مربوط اين كتابخانه است، از كلمة System استفاده نماييد. بعنوان مثال در صورت عدم استفاده از using System بايد از دستور ()System.Console.WriteLine به جاي ()Console.WriteLine استفاده كنيد.


تعريف كلاس،Class Welcome ، شامل تعريف داده ها(متغيرها) و متدها جهت اجراي برنامه است. يك كلاس، جزو معدود عناصر زبان  #C است كه بوسيله آن مي توان به ايجاد يك شي (Object) از قبيل واسط ها (Interfaces) و ساختارها(Structures)، پرداخت. توضيحات بيشتر در اين زمينه در بخش هاي آينده ذكر مي شوند. دركلاس تعریف شده در اين برنامه هيچ داده و متغيري ندارد و تنها شامل يك متد است. اين متد، رفتار(Behavior) اين كلاس را مشخص مي كند.

متد درون اين كلاس بيان مي كند كه اين كلاس چه كاري را پس از اجرا شدن انجام خواهد داد. كلمه كليدي ()Main كه نام متد اين كلاس نيز مي باشد جزو كلمات رزرو شده زبان #C است كه مشخص مي كند برنامه از كجا بايد آغاز به كار نمايد. وجود متد ()Main در تمامي برنامه هاي اجرايي ضروري است. در صورتي كه يك برنامه حاوي متد ()Main نباشد به عنوان توابع سيستمي همانند dll هاي ويندوز در نظر گرفته مي شود.


قبل از كلمه ()Main كلمه ديگري با عنوان static آورده شده است. اين كلمه در اصطلاح Modifier مي گويند. استفاده از static براي متد ()Main بيان مي دارد كه اين متد تنها در در همين كلاس قابل اجراست و هيچ نمونه اي (Instance) ديگري از روي آن قابل اجرا نمي باشد. استفاده از static براي متد ()Main الزامي است زيرا در ابتداي آغاز برنامه هيچ نمونهاي از هيچ كلاس و شي اي موجود نمي باشد و تنها متد ()Main است كه اجرا مي شود

هر متد بايد داراي يك مقدار بازگشتي باشد، يعني بايد مقداري را به سيستم بازگرداند، در اين مثال نوع بازگشتي void تعريف شده است كه نشان دهنده آن است كه اين متد هيچ مقداري را باز نمي گرداند يا به عبارت بهتر خروجي ندارد. همچنين هر متد ميتواند داراي پارامترهايي نيز باشد كه ليست پارامترهاي آن در داخل پرانتزهاي جلوي آن قرار مي گيرد. (متد ما در اين جا يك آرايه از رشته دريافت مي كند كه علت آن را بعد ها توضيح مي دم اما مي شد براي سادگي كار هيچ ورودي دريافت نكند)

متد ()Main رفتار و عمل خود را به وسيله (…)Console.WriteLine مشخص مي نمايد. Console كلاسي در System است و ()WriteLine متدي در كلاس Console. در زبان #C از اپراتور "." (نقطه) جهت جداسازي زيرقسمت ها استفاده مي كنيم. همانطور كه ملاحظه مي كنيد چون ()WriteLine يك متد درون كلاس Console است به همين جهت از "." جهت جداسازي آن استفاده كرده ايم.

در زبان #C برخي از كلمات از قبل در برنامه تعريف شده و اين كلمات ، كلمات كليدي اين زبان بوده و نمي توان از آن ها به عنوان نام متغير استفاده نمود. ليست اين كلمات را در جدول زير مشاهده مي كنيد.

The C# Keywords
abstractconstexturnintoutshorttypeof
ascontinuefalseinterfaceoverridesizeofuint
basedecimalfinallyinternalparamsstackalloculong
booldefaultfixedisprivatestaticunchecked
breakdelegatefloatlockprotectedstringunsafe
ByteDoForLongpublicstructunshort
casedoubleforeachnamespacereadonlyswitchusing
catchelsegotonewrefthisvirtual
charenumIfnullreturnthrowvoid
checkedeventimplicitobjectsbytetruevolatile
classexplicitinoperatorsealedtrywhile
حال مثال ساده اي را با هم بررسي مي كنيم.
using System;

class Welcome2
{
static void Main(string[] args)
{ // متني بر روي صفحه نمايش داده ميشود Console.Write("What is your name?: "); //متني نمايش داده شده و برنامه منتظر دريافت ورودي ميماند Console.Write("Hello, {0}! ", Console.ReadLine()); Console.WriteLine( "welcome to the c# proggraming!" ); } }
همانطور كه مشاهده مي كنيد داخل دستور (…)Console.WriteLine عبارتي به شكل {0} وجود دارد. اين آرگومان، نشان مي دهد كه به جاي آن چه مقداري بايد نمايش داده شود كه در اين جا مقداري كه توسط متد ()ReadLine خوانده و به برنامه برگردانده شده، نشان داده مي شود. عبارتي كه داخل " " قرار دارد عيناً در خروجي نمايش داده مي شود، به جاي آرگومان {0}، مقداري كه پس از ' , ' قرار دارد، قرار مي گيرد. خروجي برنامه فوق به شكل زير است:
What is your name?
(سپس برنامه منتظر دريافت متني از ورودي توسط كاربر ميماند)
(پس از اينكه كاربر رشته اي را وارد كرد [Alex] و كليدEnter را فشار داد، متن زير نمايش داده ميشود)
Hello,Alex!
(سپس اجراي برنامه به دستور بعدي منتقل ميشود)
Welcome to the C# Programming!
خروجي كامل برنامه :
What is your name?:
Hello, Alex!
Welcome to the C# Programming
توجه كنيد كه ()ReadLine به عنوان يك متد، مقداري را به سيستم بازميگرداند. اين مقدار در اين برنامه به آرگومان {0} برگردانده ميشود. اين خط از برنامه را ميتوان طور ديگري هم نوشت :
string myName= Console.ReadLine(); 
Console.WriteLine("Hello, {0}! ",myName);
در اين حالت ما يك متغير از نوع رشته به نام myName تعريف كرده ايم كه مقدار ورودي در آن ذخيره مي شود و سپس از اين مقدار به عنوان مقداري كه {0‍} مي پذيرد استفاده كرده ايم.